/**
 * 
 */
package com.ihg.hiex.entity.session.before.delegatework;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.ihg.hiex.entity.user.Delegate;

/**
 * @author houtao
 *
 */
@Entity
@Table(name = "delegate_career_goals")
public class DelegateCareerGoals {
    
    @Id
    @GeneratedValue
    private Long id;
    
    @JsonIgnore
    @ManyToOne(fetch = FetchType.LAZY, optional = false)
    private Delegate delegate;
    
    /** 短期目标  */
    private String shortPosition;
    
    /** 长期目标   */
    private String longPosition;
    
    /** 终极目标   */
    private String ultimatePosition;
    
    /** 下一个岗位花费时间 */
    @Enumerated(EnumType.STRING)
    private NextPositionTime nextPositionTime;
    
    /** 是否愿意调动 */
    @Column(name = "is_moved")
    private boolean moved;
    
    /** 不愿意调动原因 */
    private String reason;
    
    /** 是否启用 */
    @Column(name = "is_disabled")
    private boolean disabled;

    /**
     * the default constructor.
     */
    public DelegateCareerGoals() {
    }
    
    /**
     * 
     * @param delegate
     * @return
     */
    public DelegateCareerGoals init(Delegate delegate) {
    	this.delegate = delegate;
    	this.disabled = false;
    	return this;
    }
    /**
     * @return the id
     */
    public Long getId() {
        return id;
    }

    /**
     * @return the delegate
     */
    public Delegate getDelegate() {
        return delegate;
    }

    /**
     * @return the shortPosition
     */
    public String getShortPosition() {
        return shortPosition;
    }

    /**
     * @return the longPosition
     */
    public String getLongPosition() {
        return longPosition;
    }

    /**
     * @return the ultimatePosition
     */
    public String getUltimatePosition() {
        return ultimatePosition;
    }

    /**
     * @return the nextPositionTime
     */
    public NextPositionTime getNextPositionTime() {
        return nextPositionTime;
    }

    /**
     * @return the moved
     */
    public boolean isMoved() {
        return moved;
    }

    /**
     * @return the reason
     */
    public String getReason() {
        return reason;
    }

    /**
     * @return the disabled
     */
    public boolean isDisabled() {
        return disabled;
    }

    /**
     * @param id the id to set
     */
    public void setId(Long id) {
        this.id = id;
    }

    /**
     * @param delegate the delegate to set
     */
    public void setDelegate(Delegate delegate) {
        this.delegate = delegate;
    }

    /**
     * @param shortPosition the shortPosition to set
     */
    public void setShortPosition(String shortPosition) {
        this.shortPosition = shortPosition;
    }

    /**
     * @param longPosition the longPosition to set
     */
    public void setLongPosition(String longPosition) {
        this.longPosition = longPosition;
    }

    /**
     * @param ultimatePosition the ultimatePosition to set
     */
    public void setUltimatePosition(String ultimatePosition) {
        this.ultimatePosition = ultimatePosition;
    }

    /**
     * @param nextPositionTime the nextPositionTime to set
     */
    public void setNextPositionTime(NextPositionTime nextPositionTime) {
        this.nextPositionTime = nextPositionTime;
    }

    /**
     * @param moved the moved to set
     */
    public void setMoved(boolean moved) {
        this.moved = moved;
    }

    /**
     * @param reason the reason to set
     */
    public void setReason(String reason) {
        this.reason = reason;
    }

    /**
     * @param disabled the disabled to set
     */
    public void setDisabled(boolean disabled) {
        this.disabled = disabled;
    }
}
